<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script></script>
    <script>
        // Array.of()方法
        // 将参数中所有值作为元素形成数组。

        // console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4]
        // 参数值可为不同类型
        // console.log(Array.of(1, '2', true)); // [1, '2', true]
        // 参数为空时返回空数组
        // console.log(Array.of()); // []



        // Array.from()
        // 将类数组对象或可迭代对象转化为数组

        // 参数为数组，返回与原数组一样的数组
        // console.log(Array.from([1, 2])); //[1,2]
        // 参数含空位
        // console.log(Array.from([1, , 3])); //[1,undefined,3]

        // 把类数组转换成数组
        // let likeArray = {
        //     '0': 123,
        //     '1': 234,
        //     '2': 345,
        //     'length': 3
        // }
        // console.log(likeArray);
        // console.log(Array.from(likeArray));

        // 可以放第二个参数
        // let arr = Array.from([1, 2, 3], x => x * x);
        // console.log(arr);



        // .filter数组上的方法
        // Array.from(ps).filter(p => {
        //     return p.textContent.length > 100;
        // })


        // 扩展运算符  (...)  它可以将一个数组转为用逗号分隔的参数序列
        // 扩展运算符后面可以放置表达式
        // console.log(...[1, 2, 3]); //1 2 3
        // console.log(1, ...[2, 3, 4], 5); //1 2 3 4 5

        // ES5中复制数组
        // var arr = [1, 2];
        // var arr1 = arr.concat();
        // console.log(arr1);

        // ES6扩展运算符复制数组
        // const arr1 = [1, 2];
        // 写法1
        // const arr2 = [...arr1];
        // 写法二
        // const [...arr2] = arr1;
        // arr2.push(3, );
        // console.log(arr1, arr2); //深层克隆，不会影响arr1

        // 合并数组
        // const arr = [1, 2];
        // const arr1 = [3, 4];
        // const arr2 = [5, 6];
        // console.log([...arr, ...arr1, ...arr2]);

        // 与解构赋值结合，用于生成新数组
        // const [first, ...rest] = [1, 2, 3, 4, 5];
        // console.log(first);
        // console.log(rest);

        // const [first, ...rest] = [];
        // console.log(first);
        // console.log(rest);

        // const [first, ...rest] = ['foo'];
        // console.log(first);
        // console.log(rest);
    </script>
</body>

</html>